<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2021/12/1
 * Time: 8:21
 */

namespace vendor\core;

//方法 函数

class order
{
    public $userId;//用户ID
    private $orderSn;//订单编号
    private $orderType;//订单类型 0 ：普通现金订单 1：积分订单
    //构造函数
    public function __construct($userId,$orderType)
    {
        $this->orderType = $orderType;
        $this->userId = $userId;
        //1.系统编译系统进行对象内存分配及初始化（不用程序员参与的操作）
        //2.业务相关的初始化操作

        echo '订单对象初始化完毕<br />';
    }

    //访问控制： 类本身、子类、外部
    /**
     * public :类本身、子类、外部
     * private:类本身
     * protected:类本身、子类
     */

    /**
     *方法： 创建订单
     *
     */
    public function createOrder(){

        $orderSn = $this->general_order_num();

        if($this->orderType == 0){
            echo $this->userId.'--下单成功(现金订单，订单号： '.$orderSn.')!<br />';
        }else if($this->orderType == 1){
            echo $this->userId.'--下单成功(积分订单，订单号： '.$orderSn.')!<br />';
        }

    }

    public function pay(){
        //1.修改订单状态
        //2.增加支付日志
        //3.发送短信到用户手机
        //4.发送微信到用户微信
        echo '修改订单状态!<br />';
        echo '增加支付日志!<br />';
        echo '发送短信到用户手机!<br />';
        echo '发送微信到用户微信!<br />';
        echo '付款成功!<br />';
    }

    /**
     *方法： 取消订单
     *
     */
    public function cancelOrder(){
        echo $this->userId.'--取消订单成功!<br />';
    }
    /**
     *方法： 生成一个订单编号
     *
     */
    private function general_order_num(){
        return '234534353253245345';
    }


    //析构函数
    public function __destruct()
    {
        //1.系统编译系统进行对象进行清理内存空间操作（不用程序员参与的操作）
        //2.业务相关的初始化操作

        echo '订单对象清理完毕<br />';
    }
    //静态方法
    public static function getPay(){
        return [
            'no1'=>'微信支付',
            'no2'=>'支付宝支付',
            'no3'=>'银行卡支付'
        ];
    }

}